package com.seka.control.service;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.seka.control.common.SekaContants;
import com.seka.control.common.SekaPropDto;
import com.seka.control.dto.SekaDto;

/**
 * seka 控制中心
 * @author mw
 *
 */
@Component
public class SekaControl {

	/**
	 * 日志
	 */
	private static final Logger LOG = LoggerFactory.getLogger(SekaControl.class);
	
	@Autowired
	HeartbeatManager heartbeatManager;
	
	/**
	 * 服务配置信息
	 */
	@Autowired
	SekaPropDto sekaPropDto;
	
	/**
	 * 服务管理信息
	 */
	SekaDto sekaDto;
	
	/**
	 * 开启
	 */
	public void start() {
		LOG.info("---开启 seka 控制中心------");
		this.setStatus(SekaContants.RUN_DO);
		heartbeatManager.open();
	}
	
	/**
	 * 关闭
	 */
	public void stop() {
		LOG.info("---停止 seka 控制中心------");
		heartbeatManager.stop();
	}
	
	/**
	 * 设置服务状态
	 * @param status 状态信息
	 */
	public void setStatus(String status) {
		if(sekaDto == null) {
			sekaDto = new SekaDto();
			sekaDto.setAppNo(sekaPropDto.getNo());
		}
		sekaDto.setStatus(status);
	}
	
	/**
	 * 获取服务状态信息
	 * @return
	 */
	public SekaDto getSeka() {
		return this.sekaDto;
	}
}
